#!/bin/bash

# Este script é responsável por armazenar as informações relativas à banco de dados na base do CDBIS.
# O mesmo lê arquivos CSV extraídos dos servidores, trata os dados e armazena as informações no banco de dados.

# Os arquivos devem possuir nome terminado com .data e após o processamento do arquivo, o mesmo será renomeado para *.data.old.
# Todos os arquivos de um determinado diretório será avaliado.

# Definindo as variáveis de dados:
IP_SERVIDOR=
NM_SERVIDOR=
SO=
VSSO=
ARQUITETURA=
DOMINIO=
PORTA=
VERSAO=
PADRAO=
DIR_BINARIOS=
AMBIENTE=
DIR_DADOS=
NM_BASE=
NM_USUARIOS=

# Credencias de acesso ao banco de dados.
HOST=localhost
PORTA=5432
BASE=Dbd_93030_Cdbis
USUARIO=owner_cdbis_d
SENHA=
ID_USUARIO=1
# Definindo as variáveis de controle.
DIR_FILES_DATA=saida
LINHA=

#Variáveis de Banco
ID_DOMINIO=
ID_SERVIDOR=
ID_VERSAO=
ID_INSTALACAO=

# Definição de SQLS
# Domínio
SQL_EXISTE_DOMINIO="SELECT count(nome) FROM dominio WHERE upper(nome) LIKE upper('${DOMINIO}%')"
SQL_GET_ID_DOMINIO="SELECT id FROM dominio WHERE upper(nome) LIKE upper('${DOMINIO}%')"
SQL_INSERE_DOMINIO="INSERT INTO dominio (nome, id_usuario) VALUES ('${DOMINIO}', ${ID_USUARIO})"

# Servidor
SQL_GET_ID_SERVIDOR="SELECT id FROM servidor WHERE ip LIKE '${IP_SERVIDOR}' AND nome LIKE '${NM_SERVIDOR}'"
SQL_INSERE_SERVIDOR="INSERT INTO servidor (ip, nome, id_usuario) VALUES ('${IP_SERVIDOR}', '${NM_SERVIDOR}', ${ID_USUARIO})"

# Versão
SQL_GET_ID_VERSAO="SELECT id FROM versao WHERE id_dominio = ${ID_DOMINIO} AND numero LIKE ${VERSAO}"
SQL_INSERE_VERSAO="INSERT INTO versao (numero, id_dominio) VALUES (${VERSAO}, ${ID_DOMINIO})"

# Instalação
SQL_GET_ID_INSTALACAO="SELECT id FROM instalacao WHERE id_versao = ${ID_VERSAO} AND id_servidor = ${ID_SERVIDOR}"
SQL_INSERE_INSTALACAO="INSERT INTO instalacao"

# Definições de funções.

# Função de inserção de domínio. Esta função é definida neste ponto, mas só pderá ser chamada após a atribuição de valores às variáveis utilizadas.
# Esta função procura no banco de dados a existência de algum registro na base, caso não exista, insere.
#function insere_dominio(){
#	
#}

LISTA_ARQUIVOS=$(ls ${DIR_FILES_DATA}/*.data)

for ARQUIVO in $LISTA_ARQUIVOS
do
	for LINHA in $(cat $ARQUIVO)
	do
		echo $LINHA
		IP_SERVIDOR=$(echo $LINHA | cut -f 1 -d ';')
		NM_SERVIDOR=$(echo $LINHA | cut -f 2 -d ';')
		SO=$(echo $LINHA | cut -f 3 -d ';')
		VSSO=$(echo $LINHA | cut -f 4 -d ';')
		ARQUITETURA=$(echo $LINHA | cut -f 5 -d ';')
		DOMINIO=$(echo $LINHA | cut -f 6 -d ';')
		PORTA=$(echo $LINHA | cut -f 7 -d ';')
		VERSAO=$(echo $LINHA | cut -f 8 -d ';')
		PADRAO=$(echo $LINHA | cut -f 9 -d ';')
		DIR_BINARIOS=$(echo $LINHA | cut -f 10 -d ';')
		AMBIENTE=$(echo $LINHA | cut -f 11 -d ';')
		DIR_DADOS=$(echo $LINHA | cut -f 12 -d ';')
		NM_BASE=$(echo $LINHA | cut -f 13 -d ';')
		NM_USUARIOS=$(echo $LINHA | cut -f 14 -d ';')

	
		echo IP: $IP_SERVIDOR
		echo Nome: $NM_SERVIDOR
		echo SO: $SO
		echo VSSO: $VSSO
		echo ARQUITETURA: $ARQUITETURA
		echo Tipo: $DOMINIO
		echo Porta: $PORTA
		echo Versão: $VERSAO
		echo Padrão: $PADRAO
		echo Binários: $DIR_BINARIOS
		echo Ambiente: $AMBIENTE
		echo Dados: $DIR_DADOS
		echo Banco: $NM_BASE
		echo Usuários: $NM_USUARIOS

	done
done

psql $BASE $USUARIO -c "SELECT * FROM usuario;"
